//提示信息对象
let notice;
//当前操作的列对象
let cols;
let isSuccess; //表格对象
// import converterDate from '../learn/converterDate'
layui.config({
    base: '../lay/dist/'
});
layui.use(['form', 'table', 'laydate', 'notice','upload'], function () {
    var $ = layui.jquery,
        form = layui.form,
        laydate = layui.laydate,
        upload=layui.upload,
        table = layui.table;
    notice = layui.notice;

    //<editor-fold desc="编辑功能">
    let toggle = new ToggleX(edit,save,edError);

    function edit() {
        //添加可编辑状态；
       let parent= toggle.btn.parent().parent()
        toggle.btn.text("保存")
        // 获取那些元素；然后添加属性；
        console.log("通过this，parent获取",parent.prev().attr("data-edit",'classroom'))
        console.log("通过this，parent获取",parent.prev().prev().attr("data-edit",'student'))
        console.log("通过this，parent获取",parent.prev().prev().prev().attr("data-edit",'classid'))
        console.log("通过this，parent获取",parent.prev().prev().prev().prev().attr("data-edit",'date'))
    }

    function save() {
        console.log(toggle.data)
        $.post("/annunciate/update",toggle.data,res=>{
            if (res.success) {
                notice.success("修改成功")
                getALl();//刷新
                toggle.btn.text("编辑")
            } else {
                notice.error(res.data,"如有疑问，请联系管理员")
                toggle.update(toggle.value,false)
            }
        },'json')
        //保存成功了刷新; 不成功还得更改update;
        toggle.init();
    }
    function getALl() {
        table.reload('checkClass', {
            url: '/annunciate/all'
        })
    }
    function edError() {
        layer.msg("不能点击其他的哟",{
            time:1000
        })
        return true
    }
    //</editor-fold>

    //<editor-fold desc="时间组件">
    laydate.render({
        elem: '#date'
        ,theme: '#393D49'
    });
    laydate.render({
        elem: '#begin'
        ,theme: '#393D49'

    });
    laydate.render({
        elem: '#end'
        ,theme: '#393D49'

    });
    //</editor-fold>

    //<editor-fold desc="添加功能">
    let addBtn= $("#addButton"),addContainer =$("#addContainer");
    form.on('submit(saveBtn)',function (data) {
        $.post("/annunciate/add",
            data.field
            ,  res=> {
                if (res.success) {
                    clearAddContainer()
                    hideAddContainer(addBtn,addContainer)
                    notice.success("添加成功")
                    table.reload('checkClass', {
                        url: '/annunciate/all'
                    })
                } else {
                    notice.error("添加失败")
                }
            }, "json");
        return false;
    })
    //</editor-fold>


    form.on('switch(state)', function(data){
        console.log(data.value); //得到被选中的值
        $.post("/annunciate/update",{
            "state":data.elem.checked?0:1,
            "id":data.value
        },res=>{
            if (res.success) {
                notice.success("操作成功")
            } else {
                notice.error("遇到异常，操作无效")
            }
        })
    });

    /**
     * 表格主题渲染
     */
    table.render({
        elem: '#checkClass',
        url: '/annunciate/all',
        where:{
            filter:false
        },
        method:"post",
        parseData: function (res) {
            console.log(res.success)
            return {
                "code": res.success ? 0 : 1, //
                "count": res.total,
                "data": res.data

            }
        },
        toolbar: '#toolbarDemo',
        defaultToolbar: ['filter', 'exports', 'print', {
            title: '提示',
            layEvent: 'LAYTABLE_TIPS',
            icon: 'layui-icon-tips'
        }],
        cols: [
            [
                {
                    field: 'xid', width: 80, title: '序号', sort: true, templet: function (d) {
                        return d.LAY_INDEX;
                    }
                },
                {field: 'id', title: 'ID', sort: true, hide: true},
                {
                    field: 'date', width: 150, title: '日期', sort: true,templet: function (d) {
                        return ConverterDate(d.date);
                    }
                },
                {field: 'content',  title: '公告内容'},
                {field: 'sort',  title: '公告排序'},
                {field: 'state',title: '公告状态', templet:"#switchTpl"},
                {field: 'annTypeId',  title: '公告类型',templet:function (d) {
                    return  ""+d.annType.name;
                    } },
                {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
            ]
        ],
        limits: [10, 15, 20, 25, 50, 100],
        limit: 15,
        page: true,
        skin: 'line'
    });


    /**
     * 监听搜索操作
     */
    form.on('submit(data-search-btn)', function (data) {
        let result = data.field;
        console.log(result)
        // return false
        //执行搜索重载
        table.reload('checkClass', {
            url: '/annunciate/search'
            , where: result
        },      );
        notice.success("搜索执行成功！");

        return false;
    });


    /**
     * toolbar监听事件
     */
    table.on('toolbar(currentTableFilter)', function (obj) {
        if (obj.event === 'selectAll') { //
            table.reload('checkClass', {
                url: '/annunciate/all'
            })
            notice.success("查询成功！");
        } else if (obj.event === 'importExcel') {


        }else if (obj.event === 'addInfo') {
            let data= form.val("form");
            let weighty=data.date.trim().length != 0?true:
                data.classid.trim().length != 0?true:
                data.classroomid.trim().length != 0?true:
                    data.studentid.trim().length != 0?true:false;
            verifyAddContainer("取消添加",true,weighty,clearAddContainer,$("#addButton"),$("#addContainer"));

        }
    });

    /**
     * 清空添加容器的内容
     */
    function clearAddContainer() {
        form.val("form",{
            date:'',
            studentid:0,
            classid:0,
            classroomid:0
        })
    }


    /**
     * 工具行监听(删除/编辑)
     * */
    table.on('tool(currentTableFilter)', function (obj) {
        let data = obj.data;
        cols = obj;
        if (obj.event === 'edit') {
            toggle.btn=$(this);
           toggle.invoke(data.id)

        } else if (obj.event === 'delete') {
            layer.confirm('是否要删除此条记录？', function (index) {
                $.post("/annunciate/del", {id: obj.data.id}, function (result) {
                    // console.log(result)
                    if (result.success) {
                        notice.success("删除成功！");
                        obj.del()
                    } else {
                        notice.warning("删除失败！");
                    }
                },"json")
                layer.close(index);
            }, function (index) {
                layer.close(index);
            },'json');

        }

    });


    /**
     * 设置提示信息属性
     * @type {{hideEasing: string, positionClass: string, hideDuration: string, debug: boolean, closeButton: boolean, extendedTimeOut: string, showEasing: string, onclick: null, showDuration: string, iconClass: string, timeOut: string}}
     */
    notice.options = {
        closeButton: true,//显示关闭按钮
        debug: false,//启用debug
        positionClass: "toast-bottom-right",//弹出的位置,
        showDuration: "300",//显示的时间
        hideDuration: "1000",//消失的时间
        timeOut: "4000",//停留的时间
        extendedTimeOut: "1000",//控制时间
        showEasing: "swing",//显示时的动画缓冲方式
        hideEasing: "linear",//消失时的动画缓冲方式
        iconClass: 'toast-info', // 自定义图标，有内置，如不需要则传空 支持layui内置图标/自定义iconfont类名
        onclick: null, // 点击关闭回调
    };

    //监听单元格编辑
    table.on('edit(currentTableFilter)', function(obj){
            toggle.data=obj.data;
    });


});

